#!/bin/sh

. /usr/share/libubox/jshn.sh

case "$1" in
	list)
		json_init
		json_add_object "generateKeyPair"
		json_close_object
		json_add_object "getPeers"
		json_add_string "interface"
		json_close_object
		json_dump
	;;
	call)
		case "$2" in
			generateKeyPair)
				json_load "$(yggdrasil -genconf -json)"
				json_get_vars PrivateKey
				json_cleanup
				json_init
				json_add_object "keys"
				json_add_string "priv" "$PrivateKey"
				json_add_string "pub" "${PrivateKey:64}"
				json_close_object
				json_dump
			;;
			getPeers)
				read -r input
				json_load "$input"
				json_get_vars interface
				yggdrasilctl -endpoint="unix:///tmp/yggdrasil/${interface}.sock" -json getPeers
			;;
		esac
	;;
esac
